Modern microprocessors typically include support for performing operations on multiple items of data simultaneously. In particular, many microprocessors include support for vector instructions. A vector instruction defines a single operation that is to be performed upon several different operands. A microprocessor may execute the vector instruction as a single instruction, operating on the different operands simultaneously. One commercially available example of vector instruction support is Intel® Advanced Vector Extensions 2 (Intel® AVX2), available on certain processors manufactured by Intel® Corporation. Programmers may take advantage of vector support in microprocessors by writing critical sections such as loops in assembly language. Additionally, optimizing compilers may automatically vectorize some loops that are written in high-level source code.
Some microprocessors provide support for hardware transactional memory. Transactional memory allows the programmer to designate a segment of code called a “transaction” to execute independently and atomically. That is, memory operations occurring within the transaction are not visible to other transactions or threads executing on the computing system until the transaction is successfully committed. After a successful commit, all memory changes made during the transaction are instantaneously available to other threads on the system. Transactional memory may be implemented by speculatively executing the transaction, detecting any memory conflicts that occur during execution of the transaction, and then aborting and rolling back the transaction in response to memory conflicts. Memory conflicts include, for example, a transaction attempting to write to a memory location that has already been read or written-to by another transaction. Transactional memory may simplify the programming model for parallel computing. One commercially available example of hardware transactional memory support is Transactional Synchronization Extensions (Intel® TSX), available on certain processors manufactured by Intel® Corporation.